package com.yxx.business.service;

import java.util.List;

import com.yxx.common.core.domain.PageResult;
import com.yxx.business.entity.TbOperationPhaseDo;
import com.yxx.business.entity.TbOperationPhaseVo;
import com.yxx.business.entity.TbOperationPhaseQueryDto;
import com.yxx.business.entity.TbOperationPhaseEditDto;
import com.yxx.common.core.service.IServicePlus;

/**
 * 运营维护阶段Service接口
 *
 * @author yxx
 * @date 2025-08-16
 */
public interface ITbOperationPhaseService extends IServicePlus<TbOperationPhaseDo>, PhaseService {

    /**
     * 查询运营维护阶段分页结果
     *
     * @param tbOperationPhaseQueryDto 运营维护阶段查询实体
     * @return 运营维护阶段分页
     */
    public PageResult<TbOperationPhaseVo> selectTbOperationPhaseVoPage(TbOperationPhaseQueryDto tbOperationPhaseQueryDto);

    /**
     * 查询运营维护阶段Vo列表
     *
     * @param tbOperationPhaseQueryDto 运营维护阶段查询实体
     * @return 运营维护阶段集合
     */
    public List<TbOperationPhaseVo> selectTbOperationPhaseVoList(TbOperationPhaseQueryDto tbOperationPhaseQueryDto);

    /**
     * 查询运营维护阶段Do列表
     *
     * @param tbOperationPhaseQueryDto 运营维护阶段查询实体
     * @return 运营维护阶段集合
     */
    public List<TbOperationPhaseDo> selectTbOperationPhaseDoList(TbOperationPhaseQueryDto tbOperationPhaseQueryDto);

    /**
     * 查询单个运营维护阶段
     *
     * @param operationId 运营维护阶段主键
     * @return 运营维护阶段单个
     */
    public TbOperationPhaseVo selectTbOperationPhaseVoByOperationId(Long operationId);

    /**
     * 新增运营维护阶段
     *
     * @param tbOperationPhaseQueryDto 运营维护阶段编辑实体
     * @return 结果
     */
    public int insertTbOperationPhase(TbOperationPhaseEditDto tbOperationPhaseQueryDto);

    /**
     * 修改运营维护阶段
     *
     * @param operationId 主键
     * @param tbOperationPhaseQueryDto 运营维护阶段编辑实体
     * @return 结果
     */
    public int updateTbOperationPhase(Long operationId, TbOperationPhaseEditDto tbOperationPhaseQueryDto);

    /**
     * 批量删除运营维护阶段
     *
     * @param operationIds 运营维护阶段主键集合
     * @return 结果
     */
    public int deleteTbOperationPhaseByOperationIds(List<Long> operationIds);

    /**
     * 删除单个运营维护阶段信息
     *
     * @param operationId 运营维护阶段主键
     * @return 结果
     */
    public int deleteTbOperationPhaseByOperationId(Long operationId);
}
